﻿using System;
using System.Text.RegularExpressions;

namespace ConsoleApp1
{
    class Program
    {
        public static void printSeat(string[,] c)
        {
            Console.WriteLine("\n\t      第一列  第二列  第三列  第四列\n");
            for (int i = 0; i < 9; i++)
            {
                Console.Write("\t{0}排：",i+1);
                for (int j = 0; j < 4; j++)
                {
                    if (c[i, j] == "【已售】")
                    { Console.ForegroundColor=ConsoleColor.DarkRed; }
                    else
                    { Console.ForegroundColor = ConsoleColor.White; }
                    Console.Write("{0,3}", c[i, j]);
                }
                Console.ForegroundColor = ConsoleColor.White;
                Console.WriteLine("\n");
            }
        }
        static void Main(string[] args)
        {
            Console.BackgroundColor = ConsoleColor.DarkBlue;
            Console.Clear();
            string[,] Coach = new string[9, 4];//二维数组
            Console.Title = "欢迎进入客车售票系统";
            for (int i = 0; i < 9; i++)//数组初始化
            {
                for (int j = 0; j < 4; j++)
                {
                    Coach[i, j] = "【有票】";
                }
            }
            int count = 1;//计数
            printSeat(Coach);
            string a = string.Empty;//string.Empty是string的静态字段，一般用于字符串的初始化，表示null
            while (true)
            {
                Console.WriteLine("请输入座位行号和列号（如：1,1），输入Q键退出:");
                a = Console.ReadLine();
                if (a == "Q" || a == "q")
                {//退出系统
                    break;
                }
                if (((Regex.IsMatch(a, "^[1-9]{1}(,)[1-4]{1}$"))||(Regex.IsMatch(a, "^[1-9]{1}(，)[1-4]{1}$"))) ==false)
                {//输入不合法
                    count++;
                    Console.Clear();
                    if (count <= 3)
                    {
                        Console.WriteLine("输入的格式不正确！！！");
                    }
                    else if (count==4)
                    {
                        Console.WriteLine("格式还是不正确！！！再给你一次机会！！！");
                    }
                    else
                    {
                        Console.WriteLine("格式又双叒叕不对！！！毁灭吧！！！我累了！！！");
                        Console.WriteLine("按任意键进入自毁程序！！！");
                        Console.ReadKey();
                        break;
                    }
                    Console.ReadKey();
                    Console.Clear();
                    printSeat(Coach);
                    Console.WriteLine("请重新选择：");
                    Console.WriteLine("\n");
                }
                else
                {//输入合法
                    count = 1;
                    string[] b = a.Split(',', '，');
                    int x = Convert.ToInt32(b[0]) - 1;
                    int y = Convert.ToInt32(b[1]) - 1;
                    if (Coach[x, y] == "【已售】")
                    {//座位有人
                        Console.Clear();
                        Console.WriteLine("购买失败！！！这个座位有人了！！！");
                        Console.ReadKey();
                        Console.Clear();
                        printSeat(Coach);
                        Console.WriteLine("请重新选择：");
                        Console.WriteLine("\n");
                    }
                    else
                    {//座位空，成功购票
                        Coach[x, y] = "【已售】";
                        Console.Clear();
                        Console.WriteLine("购买成功！！！");
                        Console.ReadKey();
                        Console.Clear();
                        printSeat(Coach);
                        Console.WriteLine("请继续选择：");
                        Console.WriteLine("\n");
                    }
                }
            }
            Console.Clear();
            Console.WriteLine("退出系统！！！");
            Console.ReadKey();
        }
    }
}